namespace evt {
  class Event;
}
namespace iOF {
  class iOfflineFile;
}

#include <vector>

using namespace std;

#ifndef _eLT
#define _eLT
enum eLT{eNone,eThr1,eThr2,eToT};
#endif

class tStation
{
  public:
    int sId;
    double x;
    double y;
    eLT lt;
};

class tCandidate
{
  public:
    int sId;
    eLT lt;
    int ns;
    double totalVem;
    double riseTime;
    double fallTime;
};

class tEventsummary
{
  public:
    int Id;
    int fileIndex;
    int candN;
};

struct genTrace
{
  double *x;
  double *y;
  int size;
};

class pmtTrace
{
  public:
    pmtTrace();
    ~pmtTrace();
    genTrace getTrace(int i);
    void setTrace(int pmtId,int size,const double* yTrace);
    
  private:
    genTrace totalTrace[3];
    double *x;
    double *y[3];
    bool dataFlag[3];
    bool xFlag;
};


class see
{
  public:
    see();
    ~see();
    pmtTrace* getPmtTraces(int sId);
    vector<tCandidate> candList;
    vector<tStation> statList;
    bool openFile(char* filename);
    bool readEvent(int eventIndexNo);
    vector<tEventsummary> eventsList;
    
  private:
    iOF::iOfflineFile *eventFile;
    evt::Event *evento;
    pmtTrace trace;
};
